home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue61 / Clinic / Object Browser / AddInIDEU.pas next >
Encoding:
Pascal/Delphi Source File  |  2000-06-19  |  3.3 KB  |  142 lines

  1. unit AddInIDEU;
  2.  
  3. interface
  4.  
  5. procedure Register;
  6.  
  7. implementation
  8.  
  9. uses
  10.   ExptIntf, ToolIntf, Windows, ObjectBrowserFormU;
  11.  
  12. type
  13.   TAddInIDEHelper = class(TIExpert)
  14.   private
  15.     //The menu bar item, and menu item that we will add in to app
  16.     FAddInItem,
  17.     FBrowserMenuItem: TIMenuItemIntf;
  18.   protected
  19.     //This is the event handler of our new menu item
  20.     procedure BrowserMenuItemClick(Sender: TIMenuItemIntf);
  21.   public
  22.     constructor Create;
  23.     destructor Destroy; override;
  24.     function GetName:        string; override;
  25.     function GetComment:     string; override;
  26.     function GetAuthor:      string; override;
  27.     function GetPage:        string; override;
  28.     function GetGlyph:       HICON;  override;
  29.     function GetStyle: TExpertStyle; override;
  30.     function GetState: TExpertState; override;
  31.     function GetIDString:    string; override;
  32.     function GetMenuText:    string; override;
  33.     procedure Execute;               override;
  34.   end;
  35.  
  36. constructor TAddInIDEHelper.Create;
  37. var
  38.   FMainmenu: TIMainMenuIntf;
  39. begin
  40.   inherited;
  41.     {FAddInItem := NewItem('&Add-In', 0, False, True, nil, 0, 'AddInItem');
  42.     FBrowserMenuItem := NewItem('&Object Browser', 0, False,
  43.       True, BrowserMenuItemClick, 0, 'BrowserMenuItem');
  44.     Application.MainForm.Menu.Items.Add(FAddInItem);
  45.     FAddInItem.Add(FBrowserMenuItem)}
  46.   if Assigned(ToolServices) then
  47.   begin
  48.     FMainMenu := ToolServices.GetMainMenu;
  49.     if Assigned(FMainMenu) then
  50.       try
  51.         FAddInItem := FMainMenu.GetMenuItems.InsertItem(
  52.           FMainMenu.GetMenuItems.GetItemCount-1,
  53.           '&Add-In', '', '', 0, 0, 0, [mfEnabled, mfVisible], nil);
  54.         FBrowserMenuItem := FAddInItem.InsertItem(0, '&Object Browser',
  55.           '', '', 0, 0, 0, [mfEnabled, mfVisible], BrowserMenuItemClick);
  56.       finally
  57.         FMainMenu.Free
  58.       end
  59.   end
  60. end;
  61.  
  62. destructor TAddInIDEHelper.Destroy;
  63. begin
  64.   if Assigned(FAddInItem) then
  65.   begin
  66.     FAddInItem.DestroyMenuItem;
  67.     FAddInItem := nil
  68.   end;
  69.   if Assigned(FBrowserMenuItem) then
  70.   begin
  71.     FBrowserMenuItem.DestroyMenuItem;
  72.     FBrowserMenuItem := nil
  73.   end;
  74.   ObjectBrowserForm.Free;
  75.   ObjectBrowserForm := nil;
  76.   inherited Destroy
  77. end;
  78.  
  79. procedure TAddInIDEHelper.BrowserMenuItemClick(Sender: TIMenuItemIntf);
  80. begin
  81.   //When menu item is chosen, instantiate the browser form
  82.   if not Assigned(ObjectBrowserForm) then
  83.     ObjectBrowserForm := TObjectBrowserForm.Create(nil);
  84.   ObjectBrowserForm.Show
  85. end;
  86.  
  87. function TAddInIDEHelper.GetName: string;
  88. begin
  89.   Result := 'Object Browser Menu';
  90. end;
  91.  
  92. function TAddInIDEHelper.GetComment: string;
  93. begin
  94.   Result := '';
  95. end ;
  96.  
  97. function TAddInIDEHelper.GetAuthor: string;
  98. begin
  99.   Result := '';
  100. end ;
  101.  
  102. function TAddInIDEHelper.GetPage: string;
  103. begin
  104.   Result := '';
  105. end;
  106.  
  107. function TAddInIDEHelper.GetGlyph: HICON;
  108. begin
  109.   Result := 0;
  110. end;
  111.  
  112. function TAddInIDEHelper.GetStyle: TExpertStyle;
  113. begin
  114.   Result := esAddIn;
  115. end;
  116.  
  117. function TAddInIDEHelper.GetState: TExpertState;
  118. begin
  119.   Result := [esEnabled];
  120. end;
  121.  
  122. function TAddInIDEHelper.GetIDString: string;
  123. begin
  124.   Result := GetName;
  125. end;
  126.  
  127. function TAddInIDEHelper.GetMenuText: string;
  128. begin
  129.   Result := '';
  130. end ;
  131.  
  132. procedure TAddInIDEHelper.Execute;
  133. begin
  134. end;
  135.  
  136. procedure Register;
  137. begin
  138.   RegisterLibraryExpert(TAddInIDEHelper.Create)
  139. end;
  140.  
  141. end.
  142.